package com.xuelang.pipeline.domain.pipeline.service;

import com.xuelang.pipeline.client.common.request.PageParam;
import com.xuelang.pipeline.client.common.result.PageRecord;
import com.xuelang.pipeline.client.pipeline.dto.ChangeMgmtQuery;
import com.xuelang.pipeline.domain.pipeline.ChangeMgmt;

/**
 * <p>组件变更管理域服务接口</p>
 *
 * @author : yixin.lys
 * @date : 2024-08-02 13:44
 **/
public interface ChangeMgmtDomainService {

    /**
     * 获取组件变更分页列表
     * @param query
     * @return
     */
    PageRecord<ChangeMgmt> page(PageParam<ChangeMgmtQuery> query);

    /**
     * 新增变更
     * @param toAdd
     * @return
     */
    Boolean add(ChangeMgmt toAdd);

    /**
     * 更新现有变更
     * @param toUpdate
     * @return
     */
    Boolean update(ChangeMgmt toUpdate);

    /**
     * 根据变更id获取变更详情
     * @param id
     * @return
     */
    ChangeMgmt queryById(String id);

    /**
     * 根据id删除变更
     * @param id
     * @return
     */
    Boolean removeById(String id);

    /**
     * 根据组件label删除变更
     * @param componentLabel
     * @return
     */
    Boolean removeByComponentLabel(String componentLabel);

}
